1. Technical Field
This application relates to computer storage devices, and more particularly to the field of maintaining copies of data for computer storage devices.
2. Description of Related Art
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass., and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels of the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical volumes. The logical volumes may or may not correspond to the actual disk drives.
In some instances, it is desirable to provide a snapshot copy of a logical volume. The snapshot copy is a logical point-in-time version of the volume that may be obtained relatively quickly and without significant overhead by creating a data structure initially containing pointers that point to sections of the logical volume. As data is written to sections of the logical volume (e.g., tracks) two different versions of data are maintained. A first version of the data represents the original data that existed when the snapshot was initiated and a second version of the data represents the new data being written. Any subsequent writes to the same section overwrite the second version. There are many different specific mechanisms for providing snapshot copies. See, for example, U.S. Pat. No. 7,340,489 to Vishlitzky, et al. and U.S. Pat. No. 5,819,292 to Hitz, et al., both of which are incorporated by reference herein.
Snapshots are useful for recovering from logical errors. For example, if a logical device contains data for a database for which a snapshot copy is made at 10:00 a.m., and a user inadvertently erases important data at 11:00 a.m. (or a program error causes corruption of the data for the database), then it is possible to recover the 10:00 a.m. version of the data using the snapshot. Note also that, since a snapshot may be initiated by creating a table of pointers to actual data, then there is relatively little overhead/time associated with creating a snapshot.
Snapshots may not be as useful in the case of physical corruption of the data (e.g., failure of underlying physical hardware). For example, if a snapshot is taken of a logical volume V. containing track A, and if track A is then physically corrupted after initiation of the snapshot, then the snapshot, which points to corrupted track A, is not useful for recovering the data of track A. On the other hand, protection from physical corruption of the data may be obtained by performing a full copy of a logical volume, where the data of a volume is copied from a first logical volume to a second logical volume and where the first and second logical volumes correspond to separate physical storage space. In such a case, corruption of one physical storage space may not affect another physical storage space. However, there may be a significant amount of overhead/time associate with providing a full copy. Furthermore, additional complexities are introduced if it is desirable to have a full copy be a point-in-time copy.
Accordingly, it is desirable to provide a system that exhibits the low overhead and near instantaneous initiation advantages of a point-in-time snapshot copy while still protecting against physical corruption of the data.